<?php
/* @var $this ProductosController */
/* @var $model Productos */
/* @var $form CActiveForm */
?>

<?php
/* @var $this ProductosController */
/* @var $model Productos */
/* @var $form CActiveForm */
//popup
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'dialogProveedor',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Lista de Proveedores',
'autoOpen'=>false,
'width'=> '400',
'height' => '550',
),
));

$model3 = new Proveedores;
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'proveedores-grid',
    'selectionChanged' => 'seleccionproveedor',
    'dataProvider'=>$model3->search(),
    'filter'=>$model3,
    'ajaxUrl'=>Yii::app()->createUrl('productos/adminproveedor/search2'), 
    'columns'=>array(
        'ID',
        'IDProveedor',
        'NOMBRE',
        'Descripcion',
    ),
    'pager'=>array(
    'maxButtonCount'=>5,
    ),
));
$this->endWidget('zii.widgets.jui.CJuiDialog');



$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'dialogEmpleado',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Lista de Empleados',
'autoOpen'=>false,
'width'=> '400',
'height' => '550',
),
));

$model2 = new Empleados;
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'empleados-grid',
    'selectionChanged' => 'seleccionempleado',
    'dataProvider'=>$model2->search(),
    'filter'=>$model2,
    'ajaxUrl'=>Yii::app()->createUrl('productos/adminempleado/search3'), 
    'columns'=>array(
        'ID',
        'IDEmpleado',
        'NOMBRE',
        'APELLIDO',
    ),
    'pager'=>array(
    'maxButtonCount'=>5,
    ),
));

$this->endWidget('zii.widgets.jui.CJuiDialog');



//widget de producto popup
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'dialogInventario',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Lista de Productos',
'autoOpen'=>false,
'width'=> '400',
'height' => '550',
),
));
$model4 = new Inventario;
    $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'inventario-grid',
    'dataProvider'=>$model4->filtro(),
    'filter'=>$model4,
    'ajaxUrl'=>Yii::app()->createUrl('facturas/adminp'), 
    'selectionChanged'=>'seleccionp',
    'columns'=>array(
        'IDINVENTARIO',
        'CODIGO',
        'DESCRIPCION',
        'CANTIDAD',
        'PRECIO',
    ),
    'pager'=>array(
    'maxButtonCount'=>5,
    ),

));
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>



<script type="text/javascript">
$(document).ready(function(){
    $("#txtCant").keypress(function(event){
        var keynum = window.event ? window.event.keyCode : e.which;
        if(keynum!=13)
        {
        if ((keynum == 8) || (keynum == 0))
            return true;
            return /\d/.test(String.fromCharCode(keynum));
        }
        else{$("#txtPrecio").focus();}
    });

    $("#IDProducto").keypress(function(event){
        var keynum = window.event ? window.event.keyCode : e.which;
            if(keynum!=13)
            {
            if ((keynum == 8) || (keynum == 0))
                return true;
                return /\d/.test(String.fromCharCode(keynum));
            }
            else
            {
            $.getJSON("<?php echo $this->createUrl('facturas/datop'); ?>/"+$("#IDProducto").val(), 
            function(data){
                if(data.Cant>0)
                {
                $("#IDProducto").val(data.ID);
                $("#txtNombreP").val(data.Descripcion);
                $("#txtCantE").val(data.Cant);
                $("#txtCant").focus();
                }
                else
                {
                    $("#IDProducto").val("");
                    $("#txtNombreP").val("");
                    $("#txtCant").val("0");
                    $("#txtCantE").val("0");
                    $("#txtPrecio").val("0");
                    alert("No hay existencias de ese producto");
                }
            });
        }
    });

	$("#txtCant").keyup(function(event){
		if(parseInt($("#txtCant").val())>parseInt($("#txtCantE").val()))
		{
			alert("Solo existen "+ ($("#txtCantE").val())+" en bodega");
			$("#txtCant").val(($("#txtCantE").val()));
		}
	});
});


//tabla 
function agregarFila(obj){
    if($("#IDProducto").val()!="" && $("#txtNombreP").val()!="" && $("#txtCant").val()!="0" && $("#txtCant").val()!="")
    {
        var repetido= false;
        for(var a=0; a<=parseInt($("#cant_campos").val()); a++)
        {
            if($("#IDProducto").val()==$("#hdnCodigo_"+a).val())
            {
                repetido=true;
            }
        }

        if(repetido==false)
        {
            $("#cant_campos").val(parseInt($("#cant_campos").val()) + 1);
            var oId = $("#cant_campos").val();
            //valores de la tabla
            var codigo = $("#IDProducto").val();
            var nombre = $("#txtNombreP").val();
            var cant = $("#txtCant").val();
            var precio = $("#txtPrecio").val();


            var strHtml1 = "<td>" + codigo + '<input type="hidden" id="hdnCodigo_' + oId + '" name="hdnCodigo_' + oId + '" value="' + codigo + '"/></td>';
            var strHtml2 = "<td>" + nombre + '<input type="hidden" id="hdnNombre_' + oId + '" name="hdnNombre_' + oId + '" value="' + nombre + '"/></td>' ;
            var strHtml3 = "<td>" + cant + '<input type="hidden" id="hdnCant_' + oId + '" name="hdnCant_' + oId + '" value="' + cant + '"/></td>' ;
            var strHtml4 = "<td>" + precio + '<input type="hidden" id="hdnPrecio_' + oId + '" name="hdnPrecio_' + oId + '" value="' + precio + '"/></td>' ;
            var strHtml9 = '<td><img src="delete.png" width="16" height="16" alt="Eliminar" onclick="if(confirm(\'Realmente desea eliminar este detalle?\')){eliminarFila(' + oId + ');}"/>';
            strHtml9 += '<input type="hidden" id="hdnIdCampos_' + oId +'" name="hdnIdCampos[]" value="' + oId + '" /></td>';
            var strHtmlTr = "<tr id='rowDetalle_" + oId + "'></tr>";
            var strHtmlFinal = strHtml1 +strHtml2 + strHtml3 + strHtml4 + strHtml9;
            //tambien se puede agregar todo el HTML de una sola vez.
            //var strHtmlTr = "<tr id='rowDetalle_" + oId + "'>" + strHtml1 + strHtml2 + strHtml3 + strHtml4 + strHtml5 + strHtml6 +"</tr>";
            $("#tbDetalle").append(strHtmlTr);
            //si se agrega el HTML de una sola vez se debe comentar la linea siguiente.
            $("#rowDetalle_" + oId).html(strHtmlFinal);


        //Reset valores
            $("#IDProducto").val("");
            $("#txtNombreP").val("");
            $("#txtCantE").val("0");
            $("#txtCant").val("0");
            $("#txtPrecio").val("0");
            return false;
    }       
    else{
            //Reset valores
                $("#IDProducto").val("");
                $("#txtNombreP").val("");
                $("#txtCant").val("0");
                $("#txtCantE").val("0");
                $("#txtPrecio").val("0");
        alert("Este producto ya a sido agregado");
    }

}
    else{alert("No se han ingresado los datos de ningun producto")}
}

    function eliminarFila(oId){     
        $("#rowDetalle_" + oId).remove();   
        return false;
    }

    function cancelar(){
        $("#tbDetalle").html("");   
        return false;
    }


//funcion que crea los popup
function proveedor()
{
    <?php echo CHtml::ajax(array(
            'data'=> "js:$(this).serialize()",
            'type'=>'post',
            'dataType'=>'json',
            'success'=>"function(data)
            {
                if (data.status == 'failure')
                {
                    $('#dialogProveedor div.divForForm').html(data.div);
                          // Here is the trick: on submit-> once again this function!
                    $('#dialogProveedor div.divForForm form').submit(proveedor);
                }
                else
                {
                    $('#dialogProveedor div.divForForm').html(data.div);
                    setTimeout(\"$('#dialogProveedor').dialog('close') \",3000);
                }
 
            } ",
            ))?>;
    return false; 
}

function seleccionproveedor(target_id)
 {
     var sel_row=$.fn.yiiGridView.getSelection('proveedores-grid');
           
        var sel_row=sel_row-1;   
     
    if(sel_row!='-1'){
    	var row=$.fn.yiiGridView.getRow('proveedores-grid',sel_row);
    	$("#Productos_IDProveedor").val(row[0].innerHTML);
    	$('#dialogProveedor').dialog('close');
	}
}


function empleado()
{
    <?php echo CHtml::ajax(array(
            'data'=> "js:$(this).serialize()",
            'type'=>'post',
            'dataType'=>'json',
            'success'=>"function(data)
            {
                if (data.status == 'failure')
                {
                    $('#dialogEmpleado div.divForForm').html(data.div);
                          // Here is the trick: on submit-> once again this function!
                    $('#dialogEmpleado div.divForForm form').submit(empleado);
                }
                else
                {
                    $('#dialogEmpleado div.divForForm').html(data.div);
                    setTimeout(\"$('#dialogEmpleado').dialog('close') \",3000);
                }
 
            } ",
            ))?>;
    return false; 
}

function seleccionempleado(target_id)
 {
     var sel_row=$.fn.yiiGridView.getSelection('empleados-grid');
           
        var sel_row=sel_row-1;   
     
    if(sel_row!='-1'){
    	var row=$.fn.yiiGridView.getRow('empleados-grid',sel_row);
    	$("#Productos_IDEmpleado").val(row[0].innerHTML);
    	$('#dialogEmpleado').dialog('close');
	}
}


function producto()
{
    <?php echo CHtml::ajax(array(
            'data'=> "js:$(this).serialize()",
            'type'=>'post',
            'dataType'=>'json',
            'success'=>"function(data)
            {
                if (data.status == 'failure')
                {
                    $('#dialogInventario div.divForForm').html(data.div);
                          // Here is the trick: on submit-> once again this function!
                    $('#dialogInventario div.divForForm form').submit(producto);
                }
                else
                {
                    $('#dialogInventario div.divForForm').html(data.div);
                    setTimeout(\"$('#dialogInventario').dialog('close') \",3000);
                }
 
            } ",
            ))?>;
    return false; 
}

function seleccionp(_id)
{
    var id = $.fn.yiiGridView.getSelection(_id);
    $.getJSON("<?php echo $this->createUrl('facturas/datop'); ?>/"+id, 
    function(data){
        if(data.Cant>0)
        {
            $("#IDProducto").val(data.ID);
            $("#txtNombreP").val(data.Descripcion);
            $("#txtPrecio").val(data.Pre);
            $("#txtCantE").val(data.Cant);
            $('#dialogInventario').dialog('close');
        }
    });     
}

function validar(){
    var productos= false;
       	for(var a=1; a<=parseInt($("#cant_campos").val()); a++)
        {
        	if ($("#hdnCodigo_"+a).val())
  			{
    			productos=true;
    			break;
  			}
        }
    if($("#Productos_IDProveedor").val()=='' || $("#Productos_IDEmpleado").val()=='' || productos==false )
    {
        alert("Error, No se ha ingresado datos del empleado, proveedor o no se ingresaron los productos");
    }
    else
    {
        document.getElementById("productos-form").submit();
    }
}

</script>



<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
	'id'=>'productos-form',
	'enableAjaxValidation'=>false,
)); ?>

	<?php echo $form->errorSummary($model); ?>

	<div class="row">
		<?php echo $form->labelEx($model,'IDUSUARIO'); ?>
		<?php echo $form->textField($model,'IDUSUARIO',array('value'=>Yii::app()->user->id, 'readonly'=>'true')); ?>
		<?php echo $form->error($model,'IDUSUARIO'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'IDProveedor'); ?>
		<?php echo $form->textField($model,'IDProveedor',array('readonly'=>'true')); ?>
		<input type="button" value="Buscar" onclick="proveedor(); $('#dialogProveedor').dialog('open');"/>
		<?php echo $form->error($model,'IDProveedor'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'IDEmpleado'); ?>
		<?php echo $form->textField($model,'IDEmpleado', array('readonly'=>'true')); ?>
		<input type="button" value="Buscar" onclick="empleado(); $('#dialogEmpleado').dialog('open');"/>
		<?php echo $form->error($model,'IDEmpleado'); ?>
	</div>

    <input type="hidden" id="num_campos" name="num_campos" value="0" />
    <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
    
    <fieldset id="productos"><legend>Producto</legend>
    <p>Id Producto:&nbsp&nbsp<input id="IDProducto" type="text" name="IDProducto" maxlength="6" autocomplete="off"><input id="listaP" type="button" value="Buscar" onclick="producto(); $('#dialogInventario').dialog('open');"/></p>   
    <p>Producto:&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtNombreP" name="txtNombreP" readonly/></p>
    <p>Cantidad:&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtCant" name="txtCant" autocomplete="off" value="0"/><input type="hidden" id="txtCantE" name="txtCantE" autocomplete="off" value="0"/></p>
    <p>Precio:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtPrecio" name="txtPrecio" value="0" readonly/></p>
    <input type="reset" value="Reset" onclick="cancelar();" />
    <input type="button" id="btnAgregar" name="btnAgregar" value="Agregar Producto" class="buttons_aplicar" onclick="agregarFila(document.getElementById('cant_campos'));" />
    <legend class="legend">
        Productos en lista
    </legend>
    <table id="tblDetalle" style="border-radius: 1px; border: 1px solid black;">
        <thead>
            <tr>
                <th>Código</th>
                <th>Descripción de Artículo</th>
                <th>Cantidad</th>
                <th>Precio</th>
                <th>Acción</th>
            </tr>
        </thead>
        <tbody id="tbDetalle">
        </tbody>
    </table>
</fieldset>

    <div class="row buttons" id="total">
        <center>
            <input type="button" name="Enviar" value="Enviar" onclick="validar()">
        </center>
    </div>
<?php $this->endWidget(); ?>

</div><!-- form -->